package com.guigu.tms.oms.service;

import com.github.pagehelper.PageInfo;
import com.guigu.tms.commons.order.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.guigu.tms.commons.order.entity.vo.Result;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 订单 服务类
 * </p>
 *
 * @author zwj
 * @since 2022-09-27
 */
public interface IOrderService extends IService<Order> {
    /**
     * 创建订单
     * @param order 订单
     * @return
     */
    boolean createOrder(Order order);

    /**
     * 计算订单预估价格
     * @param order
     * @return
     */
    BigDecimal getOrderPrice(Order order);

    /**
     * 根据订单编号查询订单
     * @param orderId 订单编号
     * @return
     */
    Order getOrderByOrderId(String orderId);

    /**
     * 根据客户编号查询订单
     * @param memberId
     * @return
     */
    List<Order> getOrdersByMemberId(String memberId);


    /**
     * 根据收件人电话查询订单
     * @param mobile
     * @return
     */
    List<Order> getOrdersByMobile(String mobile);

    /**
     * 修改订单
     * @param orderId 订单编号
     * @param order 订单信息
     * @return
     */
    Result updateOrder(String orderId,Order order);

    /**
     * 取消订单
     * @param orderId 订单编号
     * @return
     */
    Result cancelOrder(String orderId,String cases);


    String getCourierId(String position);

}
